package com.sinosoft.quick;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.compass.annotations.SearchableId;
import org.compass.annotations.SearchableProperty;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.springframework.transaction.annotation.Transactional;

@SuppressWarnings("serial")
@Entity
@Table(name="ZYWX_IMAGE_QUICK")
@Cache(usage= CacheConcurrencyStrategy.READ_WRITE)
@Transactional
public class Quick implements Serializable {
	private BigDecimal datasetid;
	private BigDecimal rawdataid;
	private String sensorid;
	private String satelliteid;
	private String receivestationid;
	private BigDecimal orbitid;
	private BigDecimal porbitid;
	private String channelid;
	private Date imagingstarttime;
	private Date imageingstoptime;
	private BigDecimal upperleftlat;
	private BigDecimal upperleftlong;
	private BigDecimal upperrightlat;
	private BigDecimal upperrightlong;
	private BigDecimal lowerleftlat;
	private BigDecimal lowerleftlong;
	private BigDecimal lowerrightlat;
	private BigDecimal lowerrightlong;
	private Date archivetime;
	private String rawfilename;
	private String browsearchivedir;
	private String browsePath;
	private Map<String,String> viewstring;


	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="DATASETID")
    @SearchableId
	public BigDecimal getDatasetid() {
		return this.datasetid;
	}

	public void setDatasetid(BigDecimal datasetid) {
		this.datasetid = datasetid;
	}

	@Column(name="RAWDATAID")
	@SearchableProperty
	public BigDecimal getRawdataid() {
		return this.rawdataid;
	}

	public void setRawdataid(BigDecimal rawdataid) {
		this.rawdataid = rawdataid;
	}

	@Column(name="SENSORID")
	@SearchableProperty
	public String getSensorid() {
		return this.sensorid;
	}

	public void setSensorid(String sensorid) {
		this.sensorid = sensorid;
	}

	@Column(name="SATELLITEID")
	@SearchableProperty
	public String getSatelliteid() {
		return this.satelliteid;
	}

	public void setSatelliteid(String satelliteid) {
		this.satelliteid = satelliteid;
	}

	@Column(name="RECEIVESTATIONID")
	@SearchableProperty
	public String getReceivestationid() {
		return this.receivestationid;
	}

	public void setReceivestationid(String receivestationid) {
		this.receivestationid = receivestationid;
	}

	@Column(name="ORBITID")
	@SearchableProperty
	public BigDecimal getOrbitid() {
		return this.orbitid;
	}

	public void setOrbitid(BigDecimal orbitid) {
		this.orbitid = orbitid;
	}

	@Column(name="PORBITID")
	@SearchableProperty
	public BigDecimal getPorbitid() {
		return this.porbitid;
	}

	public void setPorbitid(BigDecimal porbitid) {
		this.porbitid = porbitid;
	}

	@Column(name="CHANNELID")
	@SearchableProperty
	public String getChannelid() {
		return this.channelid;
	}

	public void setChannelid(String channelid) {
		this.channelid = channelid;
	}

	@Column(name="IMAGINGSTARTTIME")
	@SearchableProperty
	public Date getImagingstarttime() {
		return this.imagingstarttime;
	}

	public void setImagingstarttime(Date imagingstarttime) {
		this.imagingstarttime = imagingstarttime;
	}

	@Column(name="IMAGEINGSTOPTIME")
	@SearchableProperty
	public Date getImageingstoptime() {
		return this.imageingstoptime;
	}

	public void setImageingstoptime(Date imageingstoptime) {
		this.imageingstoptime = imageingstoptime;
	}

	@Column(name="UPPERLEFTLAT")
	@SearchableProperty
	public BigDecimal getUpperleftlat() {
		return this.upperleftlat;
	}

	public void setUpperleftlat(BigDecimal upperleftlat) {
		this.upperleftlat = upperleftlat;
	}

	@Column(name="UPPERLEFTLONG")
	@SearchableProperty
	public BigDecimal getUpperleftlong() {
		return this.upperleftlong;
	}

	public void setUpperleftlong(BigDecimal upperleftlong) {
		this.upperleftlong = upperleftlong;
	}

	@Column(name="UPPERRIGHTLAT")
	@SearchableProperty
	public BigDecimal getUpperrightlat() {
		return this.upperrightlat;
	}

	public void setUpperrightlat(BigDecimal upperrightlat) {
		this.upperrightlat = upperrightlat;
	}

	@Column(name="UPPERRIGHTLONG")
	@SearchableProperty
	public BigDecimal getUpperrightlong() {
		return this.upperrightlong;
	}

	public void setUpperrightlong(BigDecimal upperrightlong) {
		this.upperrightlong = upperrightlong;
	}

	@Column(name="LOWERLEFTLAT")
	@SearchableProperty
	public BigDecimal getLowerleftlat() {
		return this.lowerleftlat;
	}

	public void setLowerleftlat(BigDecimal lowerleftlat) {
		this.lowerleftlat = lowerleftlat;
	}

	@Column(name="LOWERLEFTLONG")
	@SearchableProperty
	public BigDecimal getLowerleftlong() {
		return this.lowerleftlong;
	}

	public void setLowerleftlong(BigDecimal lowerleftlong) {
		this.lowerleftlong = lowerleftlong;
	}

	@Column(name="LOWERRIGHTLAT")
	@SearchableProperty
	public BigDecimal getLowerrightlat() {
		return this.lowerrightlat;
	}

	public void setLowerrightlat(BigDecimal lowerrightlat) {
		this.lowerrightlat = lowerrightlat;
	}

	@Column(name="LOWERRIGHTLONG")
	@SearchableProperty
	public BigDecimal getLowerrightlong() {
		return this.lowerrightlong;
	}

	public void setLowerrightlong(BigDecimal lowerrightlong) {
		this.lowerrightlong = lowerrightlong;
	}

	@Column(name="ARCHIVETIME")
	@SearchableProperty
	public Date getArchivetime() {
		return this.archivetime;
	}

	public void setArchivetime(Date archivetime) {
		this.archivetime = archivetime;
	}

	@Column(name="RAWFILENAME")
	@SearchableProperty
	public String getRawfilename() {
		return this.rawfilename;
	}

	public void setRawfilename(String rawfilename) {
		this.rawfilename = rawfilename;
	}

	@Column(name="BROWSEARCHIVEDIR")
	@SearchableProperty
	public String getBrowsearchivedir() {
		return this.browsearchivedir;
	}

	public void setBrowsearchivedir(String browsearchivedir) {
		this.browsearchivedir = browsearchivedir;
	}

	@Transient
	public Map<String, String> getViewstring() {
		return viewstring;
	}

	public void setViewstring(Map<String, String> viewstring) {
		this.viewstring = viewstring;
	}
	
	@Transient
	public String getBrowsePath() {
		return browsePath;
	}

	public void setBrowsePath(String browsePath) {
		this.browsePath = browsePath;
	}

}
